Adaptive queue management (AQM) is applied to transmission buffers in a base station to keep the packet round trip time (or round-trip-time; RTT) within reasonable bounds. More particularly, AQM acts to keep the time the system reacts to new input, e.g. user commands, within a reasonable time bound. Such new input may be packet data. For packet data sent over Transmission Control Protocol (TCP), the RTT affects for example the send rate as well as the congestion window size. TCP is one of the core protocols of the Internet Protocol (IP) suite (the entire suite is often called TCP/IP). IP works by exchanging pieces of information called packets. When an application program desires to send a large chunk of data across the Internet using IP, instead of breaking the data into IP-sized pieces and issuing a series of IP requests, the application program can issue a single request to TCP and let TCP handle the IP details. Due to network congestion, traffic load balancing, or other unpredictable network behavior, IP packets can be lost, duplicated, or delivered out of order. TCP detects these problems, requests retransmission of lost data, rearranges out-of-order data, and even helps minimize network congestion to reduce the occurrence of the other problems. If the data still remains undelivered, its source is notified of this failure. Once the TCP receiver has reassembled the sequence of octets originally transmitted, the TCP receiver passes them to the receiving application.
A main aspect of TCP is congestion control. TCP uses a number of mechanisms to achieve high performance and avoid congestion collapse, where network performance can decrease by several orders of magnitude. These mechanisms control the rate of data entering the network, keeping the data flow below a rate that would trigger collapse. Acknowledgments for data sent, or lack of acknowledgments, are used by senders to infer network conditions between the TCP sender and receiver. Coupled with timers, TCP senders and receivers can alter the behavior of the flow of data. This is more generally referred to as congestion control and/or network congestion avoidance. In TCP, senders employ a retransmission timeout (RTO) that is based on the estimated RTT between the sender and receiver. The behavior of this timer is specified in Request For Comments (RFC) 6298. TCP applies congestion control and can generally be distinguished to work in two phases, namely slow-start (which may also be referred to as slowstart or slow start) congestion and congestion avoidance. Modern implementations of TCP contain four intertwined algorithms: Slow-start congestion, congestion avoidance, fast retransmit, and fast recovery, as described in RFC 5681.
Slow-start is the initial part of the congestion control strategy used by TCP. Slow-start is used to avoid sending more data than the network is capable of transmitting, that is, to avoid causing network congestion. The algorithm is specified by RFC 5681 and is also known as the exponential growth phase. Slow-start begins initially with a congestion window size (cwnd) of 1, 2 or 10. The value of the congestion window will be increased with each acknowledgment (ACK) of each segment received by the transmitter, effectively doubling the window size each RTT. In other words, in this phase the congestion window, i.e. the number of TCP segments that can be in-flight, increases exponentially. To give an example, if 1 segment is sent and 1 ACK is received, the congestion window is increased by 1. If 2 segments are sent and 2 ACKs are received, the congestion window is increases twice by 1. The congestion window is further increased exponentially, if 4 or more segments are sent. A fast increase is important to utilize the full link capacity. How fast the increase happens depends on the RTT, i.e. the time between sending a segment and receiving the corresponding ACK. The transmission rate will be increased with slow-start algorithm until either a loss is detected, or the receiver's advertised window (rwnd) is the limiting factor, or the slow start threshold (ssthresh) is reached. If a loss event occurs, TCP assumes that it is due to network congestion and takes steps to reduce the offered load on the network. Although the strategy is referred to as “slow-start” (before slow-start was introduced in TCP, the initial pre-congestion avoidance phase which was used instead of the slow start phase was even faster), the used congestion window growth is quite aggressive, at least more aggressive than the subsequent congestion avoidance phase.
The second phase is called congestion avoidance. Once a loss is detected or the ssthresh is reached in the slow start phase, TCP changes from slow-start algorithm to congestion avoidance algorithm. The congestion avoidance phase is more conservative. In the congestion avoidance phase, the congestion window increases for typical congestion avoidance algorithms only linearly, i.e. the congestion window is increased by 1 segment for each RTT. The overall end-to-end delay, i.e. user experience, for services using TCP is influenced by the TCP congestion control.
AQM and artificial/active packet drop is used to further control the behavior of TCP. A packet drop of queued packets may, for example, lead to the termination of the TCP slow start, i.e. the fast growth of the congestion window. This is because it is assumed that the packet drop occurred due to congestion. For application layer traffic using TCP, TCP typically ramps up its congestion window during the slow start phase until congestion is identified on the channel. Congestion is, for example, identified when a buffer in a node along the channel overflows and a packet is dropped, e.g. in the eNB. This might lead to high round trip times e.g. in case of large buffers. With AQM, a packet is dropped before, i.e. if a buffered packet reaches a certain predefined queuing time. The latter is the above-mentioned artificial packet drop. In this way, the TCP slow start phase is artificially ended and TCP goes into congestion avoidance mode where the TCP congestion window increases only slowly. For constant or increased RTTs, a throughput increase can only be utilized by a proportional increase in allowed data in flight, i.e. the congestion window size. AQM may be achieved in several ways.
With AQM mechanisms, congestion of a data packet queue can be indicated. An artificial packet drop by AQM, for example, would be interpreted as congestion in the network by TCP. Based on that, TCP would lower its transmission rate, and/or the congestion window growth.
When link capacity is added, for example, after the TCP slow start phase, it cannot be utilized as fast as possible or ideally immediately, since the congestion window does not increase fast to reach the total link capacity. There are several ways of adding link capacity, one of them being dual connectivity. Dual connectivity had been standardized within 3rd Generation Partnership Program (3GPP) in Rel-12. In dual connectivity a user equipment (UE) may simultaneously receive from and transmit to at least two different base stations. The two different base stations are usually denoted as Master-eNodeB or in short MeNB and Secondary-eNodeB or in short SeNB. The two base stations usually operate on different frequencies. Similarly to dual connectivity in Long Term Evolution (LTE), also LTE and WiFi might be aggregated to increase link capacity.
Thus, there is a drawback under the current AQM operation, if link capacity is added when the congestion window does not increase fast to reach the total link capacity. The problem of adding link capacity in such a phase, e.g. after slow start, is especially severe if the added capacity is significantly large, e.g. when adding a secondary eNB to serve the UE, e.g. in LTE dual connectivity or when adding a WiFi access point (AP) to serve the UE in LTE/WiFi aggregation.